
package xj.app;

import javax.swing.JComponent;
import javax.swing.JMenuBar;

public interface Application {
  
  public String getName(); 
  
  public JComponent getAppComponent();

  public JComponent getAppToolBar();

  public JMenuBar getAppMenuBar();

  public JComponent getAppStatusBar();

  // the position on menubar at which a "Switch App" menu will be inserted 
  // < 0: no "Switch App" menu  
  public int getSwitchAppMenuIndex();

  public boolean isShowing();

  public boolean isProjectMode();

  public boolean isSingleDocumentMode();

  public void setDrawToolkit(DrawToolkit toolkit);

  public DrawToolkit getDrawToolkit();

  public DrawTool getTool(String name);

  public void addTool(DrawTool tool);

  public void addTool(String name, DrawTool tool);

  public void stopAutoSave();

  public void stopThreads();

  public boolean exitApp();

  public void hourGlassOn();

  public void hourGlassOff();

  // ApplicationFrame 

  public String getAppName();
  
  public String getAppDir();

  public String getDefaultDir();

  public String getVersion();

  public String getRevision();

  public String getReleaseDate();

  public String getNamespaceURI();

  public String getNamespacePrefix();

  public void setChanged(boolean changed);

}